package tables; import java.util.ArrayList; import javax.swing.table.AbstractTableModel; import subjects.Customer; import subjects.ProductStock; public class CustomersTableModel extends AbstractTableModel{ private String[] columnNames = { "Name", "Address", "Email", "Phone" }; private ArrayList<Customer> customers; public CustomersTableModel() { customers = new ArrayList<Customer>(); } public CustomersTableModel(ArrayList<Customer> customers) { this.customers = customers; } @Override public int getColumnCount() { return columnNames.length; } @Override public int getRowCount() { return customers.size(); } public String getColumnName(int column){ return columnNames[column]; } @Override public Object getValueAt(int row, int column) { Customer customer = getCustomer(row); switch(column){ case 0: return customer.getName(); case 1: return customer.getAddress(); case 2: return customer.getEmail(); case 3: return customer.getPhone(); } return customer; } public Customer getCustomer(int row){ return customers.get(row); } public void addCustomer(Customer customer){ insertCustomer(getRowCount(),customer); } public void insertCustomer(int row, Customer customer){ customers.add(row,customer); fireTableRowsInserted(row, row); } public void removeCustomer(int row){ customers.remove(row); fireTableRowsDeleted(row,row); } }